﻿#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;

class BaseFunc
{
public:
	BaseFunc()
	{
		m_A = 10;
		cout << "BaseFunc默认构造函数调用！" << endl;
	}
	~BaseFunc()
	{
		cout << "BaseFunc的析构函数调用！" << endl;
	}

	int m_A;
};
//1.子类会继承父类的成员属性，成员函数；但子类不会继承父类的构造函数和析构函数；
	//只有父类自己知道，如何构造和析构自己的属性，而子类不知道；
class SonFunc :public BaseFunc
{
public:
	SonFunc()
	{
		cout << "SonFunc默认构造函数调用！" << endl;
	}
	~SonFunc()
	{
		cout << "SonFunc的析构函数调用！" << endl;
	}
};
void testExtendsFunc()
{
	//BaseFunc bf;
	/*BaseFunc默认构造函数调用！
	BaseFunc的析构函数调用！*/

	SonFunc sf;
	/*BaseFunc默认构造函数调用！
	SonFunc默认构造函数调用！
	SonFunc的析构函数调用！
	BaseFunc的析构函数调用！*/
}

//main288：继承中的构造和析构顺序
int main288()
{
	testExtendsFunc();

	system("pause");
	return EXIT_SUCCESS;
}